Custom Exception হলো Apex প্রোগ্রামিং ভাষায় তৈরি একটি বিশেষ ধরনের Exception যা ব্যবহারকারীর নির্দিষ্ট চাহিদা ও শর্ত অনুসারে তৈরি করা হয়। সাধারণত প্রয়োজন অনুযায়ী Custom Exception তৈরি করা হয় যাতে Exception Handling আরও উন্নত হয় এবং কোডে ত্রুটি বুঝতে সহজ হয়। Custom Exception-এ নির্দিষ্ট বার্তা, কার্যক্রম এবং লজিক যুক্ত করা যায়, যা সাধারণ Exception থেকে আলাদা।
Apex-এ Custom Exception তৈরি করতে Exception
ক্লাসকে ইনহেরিট করে একটি নতুন ক্লাস তৈরি করতে হয়। Custom Exception-এর সাহায্যে নির্দিষ্ট পরিস্থিতিতে ত্রুটি নির্দেশ করা যায় এবং প্রয়োজনীয় তথ্য প্রদান করা যায়।
public class CustomExceptionName extends Exception {
// কনস্ট্রাক্টর
public CustomExceptionName(String message) {
super(message);
}
}
super()
ব্যবহার করে Exception
ক্লাসের কনস্ট্রাক্টরকে কল করে, যাতে একটি কাস্টম বার্তা যুক্ত করা যায়।নিচে একটি উদাহরণ দেয়া হলো যেখানে InsufficientBalanceException
নামের একটি Custom Exception তৈরি করা হয়েছে, যা ব্যাংকের অ্যাকাউন্টে পর্যাপ্ত ব্যালেন্স না থাকলে একটি ত্রুটি নির্দেশ করে।
public class InsufficientBalanceException extends Exception {
public InsufficientBalanceException(String message) {
super(message);
}
}
নিচের উদাহরণে, যদি অ্যাকাউন্টের ব্যালেন্স উত্তোলনের জন্য প্রয়োজনীয় ব্যালেন্সের চেয়ে কম থাকে, তাহলে InsufficientBalanceException
তৈরি করা হবে।
public class BankAccount {
public Double balance;
public BankAccount(Double initialBalance) {
this.balance = initialBalance;
}
public void withdraw(Double amount) {
if (amount > balance) {
throw new InsufficientBalanceException('Insufficient balance for withdrawal.');
} else {
balance -= amount;
System.debug('Withdrawal successful. Remaining balance: ' + balance);
}
}
}
try {
BankAccount account = new BankAccount(1000.0);
account.withdraw(1500.0); // এটি ত্রুটি সৃষ্টি করবে
} catch (InsufficientBalanceException e) {
System.debug('Error: ' + e.getMessage());
}
withdraw
মেথডে যদি প্রয়োজনীয় পরিমাণ ব্যালেন্স না থাকে, তাহলে InsufficientBalanceException
তৈরি হবে এবং একটি কাস্টম বার্তা প্রিন্ট হবে।Custom Exception ব্যবহার করার মাধ্যমে প্রোগ্রামে উন্নত Exception Handling এবং স্পষ্ট ত্রুটি নির্দেশনা দেওয়া যায়। এর কিছু গুরুত্বপূর্ণ ব্যবহারিক দিক হলো:
বিশেষ পরিস্থিতি হ্যান্ডল করা: Custom Exception ব্যবহার করে নির্দিষ্ট পরিস্থিতি অনুযায়ী ত্রুটি নির্দেশ করা যায়, যা সাধারণ Exception দিয়ে বোঝানো সম্ভব নয়।
সহজ ডিবাগিং: নির্দিষ্ট Custom Exception তৈরি করে কোডে কোন সমস্যা বা Exception ঘটছে তা দ্রুত বোঝা যায় এবং ডিবাগিং সহজ হয়।
অর্থপূর্ণ বার্তা প্রদান: Custom Exception ব্যবহার করে অর্থপূর্ণ ত্রুটি বার্তা প্রদান করা সম্ভব, যা Exception-এর উৎস এবং প্রাসঙ্গিকতা বুঝতে সহায়ক।
ব্যবহারকারী বান্ধব: Custom Exception ব্যবহার করে ব্যবহারকারীর জন্য আরো উপযোগী বার্তা এবং নির্দেশনা প্রদান করা যায়।
নিচে InvalidAgeException
নামে একটি Custom Exception তৈরি করা হয়েছে, যা শুধুমাত্র বয়স ১৮ বছরের কম হলে ত্রুটি নির্দেশ করবে।
public class InvalidAgeException extends Exception {
public InvalidAgeException(String message) {
super(message);
}
}
public class Registration {
public void registerUser(Integer age) {
if (age < 18) {
throw new InvalidAgeException('Age must be 18 or older to register.');
} else {
System.debug('User registered successfully.');
}
}
}
try {
Registration reg = new Registration();
reg.registerUser(16); // এটি ত্রুটি তৈরি করবে
} catch (InvalidAgeException e) {
System.debug('Error: ' + e.getMessage());
}
registerUser
মেথডে InvalidAgeException
ব্যবহার করা হয়েছে। যদি বয়স ১৮ বছরের কম হয়, তাহলে Custom Exception তৈরি হবে এবং ব্যবহারকারীকে একটি নির্দিষ্ট বার্তা প্রদান করবে।সঠিক নামকরণ: Exception-এর জন্য অর্থবহ নামকরণ করুন যাতে Exception এর ধরন বোঝা যায়, যেমন InsufficientBalanceException
, InvalidAgeException
।
অর্থপূর্ণ বার্তা প্রদান: Custom Exception-এর কনস্ট্রাক্টরে অর্থপূর্ণ বার্তা দিন, যাতে ত্রুটি সহজে বোঝা যায়।
Exception Hierarchy তৈরি: বড় প্রজেক্টের ক্ষেত্রে Exception-গুলো একটি Parent Custom Exception থেকে ইনহেরিট করে Hierarchy তৈরি করতে পারেন, যেমন ApplicationException
।
Custom Exception-এর মাধ্যমে নির্দিষ্ট ত্রুটি পরিস্থিতি হ্যান্ডল করা যায় এবং প্রোগ্রামিংয়ের উন্নত ত্রুটি নির্দেশনা ও ডিবাগিং সুবিধা পাওয়া যায়। Custom Exception তৈরি করে Exception Handling আরও সুনির্দিষ্ট, ব্যবহারকারী-বান্ধব এবং সহজতর করা যায়, যা কোডিং প্রক্রিয়াকে উন্নত করে।
common.read_more